﻿namespace Homework_Snake1015
{
    
    internal class Menu
    {
        ConsoleKeyInfo key;

        enum MenuCtrl
        {
            None,
            up,
            down,
            select
        }

        enum Selection
        {
            Start,
            Continue,
            Exit
        }

        enum Scene
        {
            menu,
            scene1,
            scene2,
            scene3,
        }

        MenuCtrl menuCtrl;
        Selection sel;
        Scene scene;
        Snake snake;

        void Print(string str, int x, int y, ConsoleColor color = ConsoleColor.White)
        {
            Console.SetCursorPosition(x, y);
            Console.ForegroundColor = color;
            Console.WriteLine(str);
            Console.ResetColor();
        }

        public void Init()
        {
            sel = Selection.Start;
            scene = Scene.menu;
        }

        public void Input()
        {
            //switch (scene)
            //{
            //    case Scene.menu:
            //        key = default;
            //        if (Console.KeyAvailable)
            //        {
            //            key = Console.ReadKey(true);
            //        }
            //        switch (key.Key)
            //        {
            //            case ConsoleKey.W:
            //            case ConsoleKey.UpArrow:
            //                menuCtrl = MenuCtrl.up;
            //                break;
            //            case ConsoleKey.S:
            //            case ConsoleKey.DownArrow:
            //                menuCtrl = MenuCtrl.down;
            //                break;
            //            case ConsoleKey.Enter:
            //                menuCtrl = MenuCtrl.select;
            //                break;
            //        }
            //        break;
            //    case Scene.scene1:
            //        snake.Input();
            //        break;
            //    case Scene.scene2:
            //        break;
            //    default:
            //        break;
            //}
        }

        public void Update()
        {
            Input();
            //switch (scene)
            //{
            //    case Scene.menu:
            //        switch (menuCtrl)
            //        {
            //            case MenuCtrl.up:
            //                sel--;
            //                if (sel < Selection.Start)
            //                {
            //                    sel = Selection.Exit;
            //                }
            //                break;
            //            case MenuCtrl.down:
            //                sel++;
            //                if (sel > Selection.Exit)
            //                {
            //                    sel = Selection.Start;
            //                }
            //                break;
            //            case MenuCtrl.select:
            //                switch (sel)
            //                {
            //                    case Selection.Start:
            //                        scene = Scene.scene1;
            //                        Console.Clear();
            //                        break;
            //                    case Selection.Continue:
            //                        break;
            //                    case Selection.Exit:
            //                        Environment.Exit(0);
            //                        break;
            //                }
            //                break;
            //        }
            //        break;
            //    case Scene.scene1:
            //        break;
            //    case Scene.scene2:
            //        break;
            //    default:
            //        break;
            //}
        }

        public void Render()
        {
            //switch (scene)
            //{
            //    case Scene.menu:
            //        Print("贪吃蛇", 5, 3, ConsoleColor.White);

            //        Print("开始游戏",3,5,sel == Selection.Start ? ConsoleColor.Red : ConsoleColor.White);
            //        Print("继续游戏", 3, 6, sel == Selection.Continue ? ConsoleColor.Red : ConsoleColor.White);
            //        Print("结束游戏", 3, 7, sel == Selection.Exit ? ConsoleColor.Red : ConsoleColor.White);
            //        break;
            //    case Scene.scene1:
            //        break;
            //    case Scene.scene2:
            //        break;
            //    default:
            //        break;
            //}
        }

        public void End()
        {

        }
    }
}